这个精灵,当它被标记为“ 脏 ”("dirty")的时候,就会重绘自身。 这就使得在相邻两帧之间 可以多次改变精灵 的属性, 而不用在每次改变属性 时就引发一次重绘。每当需要 重绘时,调用 dirty() 方法 。 这个类会确保 在下一帧被渲染之前精灵 只被重绘一次。
子类应当将绘图代码放在 render() 方法 中。对于所有 会被方法 render 使用来绘制此精灵的属性, 在 其对应的设置("setter")方法中应当调用 dirty() 方法 , 这样会将此精灵标记为脏的,于是 会 在下一帧动画中触发一次重绘。
在内部,DirtySprite类维护着一个 由所有“脏”精灵组成的静态列表,并且 在收到 Event.RENDER 事件 时 重绘列表中的每个精灵。 一般情况下,这个过程是自动的。 在少数情况下, 会发生古怪的事情,已经观察 到 , 由于Flash Player 的 某个漏洞 的影响, RENDER 事件无法 被正常地触发。作为 一个补偿手段, 可以手动调用 renderDirty() 方法来强制要求每个脏精灵 被重绘。
HxLauncher: Launch Android applications by voice commands